/*
 * SrcAdmissionControl.cc
 *
 *  Created on: 2011-04-10
 *      Author: Jagger
 */

#include <set>
#include "AbstractAdmissionControl.h"

/**
 * Implementuje modul Admission Control odrzucajacy pakiety po identyfikatorach
 * modulow z ktorych zostaly wyslane.
 */
class SrcAdmissionControl : public AbstractAdmissionControl
{
protected:
	/**
	 * Zbior zbanowanych identyfikatorow. Identyfikator jest unikalna wartoscia
	 * przedzielana kazdemu modulowi przed rozpoczeciem symulacji.
	 */
	std::set<uint32_t> bannedIds;

	/**
	 * Iniciuje zbior zbanowanych identyfikatorow.
	 */
	virtual void initialize();

	/**
	 * Przepuszcza dany pakiet o ile jego atrybut 'src' nie znajduje sie w
	 * zbiorze zbanowanych identyfikatorow.
	 */
	virtual bool acceptPacket(NetPacket* packet);
};
